﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using Snowdreamist.Windows.Controls;

namespace Snowdreamist.Runtime.Services
{
    public interface IDataTemplateManager : IRuntimeService
    {
        DataTemplate GetTemplate(Type dataType);

        DataTemplate GetTemplate(Type dataType, string scope);

        DataTemplate GetTemplate(Type dataType, string scope, string viewState);

        DataTemplate GetTemplate(string dataTypeName);

        DataTemplate GetTemplate(string dataTypeName, string scope);

        DataTemplate GetTemplate(string dataTypeName, string scope, string viewState);

        void Add(Type dataType, IDataTemplateFactory factory);

        void Add(Type dataType, string scope, IDataTemplateFactory factory);

        void Add(Type dataType, string scope, string viewState, IDataTemplateFactory factory);

        void Add(string dataTypename, IDataTemplateFactory factory);

        void Add(string dataTypename, string viewState, IDataTemplateFactory factory);

        void Add(string dataTypename, string scope, string viewState, IDataTemplateFactory factory);
    }
}